package com.atguigu.tingshu.common.kafka.entity;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * Kafka 消息数据封装类
 */
@Data
public class KafkaMessageData implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 消息ID（用于幂等性校验）
     */
    private String messageId;

    /**
     * 消息主题
     */
    private String topic;

    /**
     * 消息体
     */
    private Object message;

    /**
     * 重试次数
     */
    private int retryCount = 0;

    /**
     * 是否延迟消息
     */
    private boolean isDelay = false;

    /**
     * 延迟时长（秒）
     */
    private int delayTime = 10;

    /**
     * 消息发送时间戳
     */
    private Long timestamp;

    /**
     * 消息分区键（用于控制消息发送到哪个分区）
     */
    private String partitionKey;

}

